package com.niit.session14.inner;

public class Test {
	public static void main(String[] args) {
//		来了一个广西老表
		GuangXi guangXi = new GuangXi();
		guangXi.sayHi();
//		来了一个吉林的朋友
		JiLin jiLin = new JiLin();
		jiLin.sayHi();
//		如果一个类只使用一次，可以使用匿名内部类
//		在java中接口时无法实例化的，这里虽然写了new Greeting但是实际上new的是一个没有名字的类
//		这个没有名字的类实现了Greeting接口，
//		new出来的是一个对象，但是这个对象没有名字，所以可以使用这个类的父类或接口来接收这个对象
//		同时出现了接口的实现，也有方法的重写，也有父类的引用指向子类对象：多态
		Greeting beiJing = new Greeting() {
			@Override
			public void sayHi() {
				System.out.println("吃了吗？您嘞！");
			}
		};
		beiJing.sayHi();
//		来了一个美国的朋友
		new Greeting() {
			@Override
			public void sayHi() {
				System.out.println("Yo What's up bro!");
			}
		}.sayHi();
//		又来了一个广东的朋友
//		扩展：Lambda表达式
		Greeting guangDong = () -> System.out.println("你好！靓仔~"); 
		guangDong.sayHi();
		
	}

}
